Sign In

Don't have an account Sign Up

  • Follow us on :

Sign Up

Already a member Sign In

  • Follow us on :

มาทำความรู้จักกับภาษา Go

Go เป็นภาษาโปรแกรมขั้นตอน ได้รับการพัฒนาในปี 2550 โดย Robert Griesemer, Rob Pike และ Ken Thompson ที่ Google แต่เปิดตัวในปี 2009 เป็นภาษาโปรแกรมโอเพนซอร์ส โปรแกรมถูกประกอบโดยใช้แพ็คเกจเพื่อการจัดการการพึ่งพาที่มีประสิทธิภาพ

ภาษานี้ยังสนับสนุนสภาพแวดล้อมที่ใช้รูปแบบเหมือนกันกับภาษาแบบไดนามิก ตัวอย่างเช่น, การอนุมานประเภท (y: = 0 เป็นการประกาศที่ถูกต้องของตัวแปร y ของประเภทจุดทศนิยม)
 
เริ่มต้นด้วยการเขียนโปรแกรม Go
 
มี IDE ออนไลน์มากมายเช่น The Go Playground, repl.it เป็นต้นซึ่งสามารถใช้เพื่อเรียกใช้โปรแกรม Go โดยไม่ต้องติดตั้ง
 
สำหรับการติดตั้งใช้งานในพีซีหรือแล็ปท็อปของตัวเองเราต้องการซอฟต์แวร์สองตัวต่อไปนี้: ซอฟแวร์สำหรับเขียนโค้ดและคอมไพเลอร์

ตัวอย่างซอฟแวร์สำหรับเขียนโค้ดที่นิยมใช้สำหรับภาษา Go
  • Windows notepad
  • OS Edit command
  • Brief
  • Epsilon
  • vm or vi
  • Emacs
Go Compiler และการติดตั้ง: ภาษา Go ได้พัฒนาและสามารถติดตั้งได้บนหลาย Platform โดยสร้างมาเป็นไบนารีที่สามารถติดตั้งได้สำหรับ FreeBSD (ปล่อย 8 ขึ้นไป), Linux, Mac OS X (Snow Leopard ขึ้นไป) และระบบปฏิบัติการ Windows ที่มี 32- บิต (386) และ 64-bit (amd64 ) สถาปัตยกรรมตัวประมวลผล x86
คำแนะนำเพิ่มเติมเกี่ยวกับการติดตั้ง สามารถดูได้เพิ่มเติมตามลิงค์นี้ https://golang.org/doc/install

 Note: Extension of source code file of go language must be .go 
การเขียนโปรแกรมแรกใน Go:

 package main import "fmt" func main() { // prints geeksforgeeks fmt.Println("Hello, geeksforgeeks") }

Output:

 Hello, geeksforgeeks
คำอธิบายเกี่ยวกับไวยากรณ์ของโปรแกรม Go:
 
บรรทัดที่ 1: มันมีแพ็คเกจหลักของโปรแกรมซึ่งมีเนื้อหาโดยรวมของโปรแกรม คือจุดเริ่มต้นในการเรียกใช้โปรแกรมดังนั้นจึงจำเป็นต้องเขียน
บรรทัดที่ 2: มันมีการนำเข้า“ fmt” คือคำสั่ง preprocessor ซึ่งบอกให้คอมไพเลอร์รวมไฟล์ที่อยู่ในแพ็คเกจ
บรรทัดที่ 3: ฟังก์ชั่นหลัก คือจุดเริ่มต้นของการดำเนินการของโปรแกรม
บรรทัดที่ 4: fmt.Println () เป็นฟังก์ชันไลบรารีมาตรฐานเพื่อพิมพ์บางสิ่งบางอย่างเป็นเอาต์พุตบนหน้าจอในแพคเกจ fmt นี้ได้ส่งวิธีการ Println ซึ่งใช้ในการแสดงผลลัพธ์

คอมเม้น: คอมเม้นในภาษาต่าง ๆนั้นใช้สำหรับอธิบายโค้ด หรือใช้สำหรับส่วนที่เราไม่ต้องการให้คอมไพเบอร์สนใจ หรือนำไปอ่านและออกมาเป็นโปรแกรม ลักณณะคอมเม้นในภาษา Go มีดังนี้

คอมเม้นแบบบรรทัดเดียว:

 // single line comment 

คอมเม้นแบบหลายบรรทัด: 

 /* multiline comment */

ตัวอย่างอื่น ๆ:

 package main import "fmt" func main() { fmt.Println("1 + 1 =", 1 + 1) }

Output:

 1 + 1 = 2
คำอธิบายของโปรแกรมข้างต้น:

ในโปรแกรมดังกล่าวข้างต้น จะคล้ายคลึงกับโปรแกรมด้านบนที่กล่าวมาแล้ว มีการนำเข้าแพ็คเกจเหมือนกัน มีการพิมพ์เพื่อแสดงผลเหมือนกันโดยใช้คำสั่ง Println แต่แทนที่เราจะพิมพ์ออกมาเป็นข้อความ เราพิมพ์เป็นการบวกเลขจำนวนเต็มเข้าไปแทนนั่นคือ 1+1 ซึ่งจะได้ผลลัพธ์ของ 1+1 นั่นคือ 2 นั่นเอง



ทำไมถึงต้องเลือกใช้ ภาษา Go?
 
 
 
เนื่องจากภาษาโกเป็นความพยายามในการรวมความสะดวกในการเขียนโปรแกรมของภาษาที่ถูกตีความการพิมพ์แบบไดนามิกกับประสิทธิภาพและความปลอดภัยของภาษาที่รวบรวมและพิมพ์แบบคงที่ นอกจากนี้ยังมีจุดมุ่งหมายที่จะทันสมัยด้วยการสนับสนุนสำหรับเครือข่ายและการคำนวณแบบมัลติคอร์
 
 
อะไรที่อยู่ในภาษา Go ที่ภาษาอื่นๆไม่มี?
 
- ภาษา Go พยายามลดปริมาณการพิมพ์ทั้งความรู้สึกของคำตลอดการออกแบบนักพัฒนาพยายามลดความยุ่งเหยิงและความซับซ้อน
- ไม่มีการประกาศสัญลักษณ์หน้าตัวแปรและไม่มีไฟล์ Header ทุกอย่างถูกประกาศครั้งเดียว
ไม่มีลำดับชั้นของประเภท: เพียงแค่เป็นประเภทพวกเขาไม่จำเป็นต้องประกาศความสัมพันธ์ของพวกเขา
ข้อ จำกัด ของฮาร์ดแวร์
 
เราได้สังเกตเห็นว่าในทศวรรษที่ผ่านมาการกำหนดค่าฮาร์ดแวร์และการประมวลผลมีการเปลี่ยนแปลงในอัตราที่ช้ามาก ในปี 2004 P4 มีความเร็วสัญญาณนาฬิกา 3.0 GHz และในปี 2018 Macbook pro มีความเร็วสัญญาณนาฬิกาเป็นประมาณ (2.3Ghz v 2.66Ghz) เพื่อเพิ่มความเร็วฟังก์ชั่นที่เราใช้โปรเซสเซอร์มากขึ้น แต่การใช้โปรเซสเซอร์มากขึ้นค่าใช้จ่ายก็จะเพิ่มขึ้นเช่นกัน และด้วยเหตุนี้เราจึงใช้โปรเซสเซอร์ที่ จำกัด และใช้โปรเซสเซอร์ที่มี จำกัด เราจึงมีผลิตภัณฑ์จำนวนมาก ภาษาที่มีเธรดจะใช้หน่วยความจำมากขึ้นและทำให้ประสิทธิภาพของระบบช้าลงดังนั้นเพื่อแก้ไขปัญหาดังกล่าว Golang ได้รับการออกแบบในลักษณะที่แทนที่จะใช้เธรดโดยใช้ Goroutine ซึ่งคล้ายกับเธรด แต่ใช้หน่วยความจำน้อยมาก
เช่นเดียวกับเธรดที่กิน 1MB ในขณะที่ Goroutine ใช้หน่วยความจำ 2KB ดังนั้นในเวลาเดียวกันเราสามารถมี goroutine จำนวนมากได้ถูกกระตุ้น
ดังนั้นจุดที่กล่าวถึงข้างต้นทำให้ golang เป็นภาษาที่แข็งแกร่งซึ่งจัดการกับการทำงานพร้อมกันเช่น C ++ และ Java
 
ข้อดีและข้อเสียของ Go Language
 
ข้อดี:
 
- ยืดหยุ่นได้ง่ายกระชับและอ่านง่าย
- การทำงานพร้อมกัน - ช่วยให้กระบวนการทำงานหลายอย่างพร้อมกันและมีประสิทธิภาพ
- Quick Outcome- เวลาในการรวบรวมรวดเร็วมาก
- ไลบรารี่ - มีไลบรารี่มาตรฐานที่หลากหลาย
Garbage collection - คือคุณสมบัติที่สำคัญของภาษา Go ทำงานได้อย่างยอดเยี่ยมในการควบคุมการจัดสรรหน่วยความจำจำนวนมากและลดเวลาแฝงลงอย่างมากในตัวรวบรวมขยะเวอร์ชั่นล่าสุด
- ตรวจสอบความถูกต้องสำหรับอินเทอร์เฟซและโค้ดชนิด embed ได้
 
ข้อเสีย:
 
- ไม่สนับสนุน generics แม้ว่าจะมีการถกเถียงกันมากมายเกี่ยวกับเรื่องนี้
- แพ็กเกจที่กระจายด้วยภาษาการเขียนโปรแกรมนี้มีประโยชน์มาก แต่ Go ไม่ได้ให้ความสำคัญกับการเขียนโปรแกรมเชิงวัตถุ แต่อย่างใด
- ไม่มีบางไลบรารีโดยเฉพาะชุดเครื่องมือ UI

 
แอพพลิเคชั่นยอดนิยมบางตัวที่พัฒนาขึ้นในภาษาโก
 
Docker: ชุดเครื่องมือสำหรับการปรับใช้คอนเทนเนอร์ลินุกซ์
Openshift: แพลตฟอร์มคลาวด์คอมพิวติ้งเป็นบริการโดย Red Hat
Kubernetes: อนาคตของกระบวนการปรับใช้อัตโนมัติที่ไร้รอยต่อ
Dropbox: โอนย้ายส่วนประกอบที่สำคัญบางอย่างจาก Python ไปยัง Go
Netflix: สำหรับสองส่วนของสถาปัตยกรรมเซิร์ฟเวอร์
InfluxDB: เป็นฐานข้อมูลอนุกรมเวลาแบบโอเพ่นซอร์สที่พัฒนาโดย InfluxData
Golang: ภาษาเขียนด้วยตัวเองในโก
 
คุณสมบัติของภาษา Go
 
การออกแบบภาษา: นักออกแบบของภาษาทำให้มีจุดประสงค์เพื่อให้ภาษาง่ายและเข้าใจง่าย รายละเอียดทั้งหมดอยู่ในจำนวนหน้าน้อยและมีการตัดสินใจการออกแบบที่น่าสนใจผ่านการสนับสนุน Object-Oriented
 
การจัดการแพคเกจ: ภาษา Go ผสานเวิร์กโฟลว์นักพัฒนาสมัยใหม่ในการทำงานกับโครงการโอเพ่นซอร์สและรวมถึงวิธีการจัดการแพ็คเกจภายนอก มีการสนับสนุนโดยตรงในการขับรถเพื่อรับแพ็คเกจภายนอกและเผยแพร่แพ็คเกจของคุณเองในชุดคำสั่งง่ายๆ
 
ไลบรารี่มาตรฐานที่ทรงพลัง: Go มีไลบรารี่มาตรฐานที่ทรงพลังซึ่งกระจายเป็นแพ็คเกจ
 
การพิมพ์ดีดแบบคงที่: Go เป็นภาษาที่พิมพ์แบบคงที่ ดังนั้นในคอมไพเลอร์นี้ไม่เพียง แต่ทำงานในการรวบรวมรหัสสำเร็จ แต่ยังช่วยให้มั่นใจในการแปลงประเภทและความเข้ากันได้ เนื่องจากคุณสมบัตินี้ไปหลีกเลี่ยงปัญหาทั้งหมดที่เราเผชิญในภาษาที่พิมพ์แบบไดนามิก
 
การสนับสนุนการทดสอบ: ไปให้คุณสมบัติการทดสอบหน่วยด้วยตัวเองนั่นคือกลไกง่าย ๆ ในการเขียนการทดสอบหน่วยของคุณขนานกับโค้ดของคุณเพราะสิ่งนี้คุณสามารถเข้าใจการครอบคลุมโค้ดของคุณโดยการทดสอบของคุณเอง เอกสารประกอบเป็นตัวอย่าง
 
แพลตฟอร์มอิสระ: Go language ก็เหมือนกับภาษา Java เพราะรองรับแพลตฟอร์มอิสระ เนื่องจากการออกแบบแบบแยกส่วนและ modularity เช่นรหัสจะถูกรวบรวมและถูกแปลงเป็นรูปแบบไบนารีซึ่งมีขนาดเล็กที่สุดและด้วยเหตุนี้จึงไม่จำเป็นต้องพึ่งพา รหัสสามารถรวบรวมในแพลตฟอร์มใด ๆ หรือเซิร์ฟเวอร์และแอปพลิเคชันที่คุณทำงาน


ป้ายกำกับ